<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>kao</title>
    <style type="text/css">
        #table table {
            width: 100%;
            font-size: 14px;
            border: 1px solid #eee
        }

        #table {
            padding: 0 10px;
        }

        table thead th {
            background: #f5f5f5;
            padding: 10px;
            text-align: left;
        }

        table tbody td {
            padding: 10px;
            text-align: left;
            border-bottom: 1px solid #eee;
            border-right: 1px solid #eee;
        }

        table tbody td span {
            margin: 0 10px;
            cursor: pointer;
        }

        .delete {
            color: red;
        }

        .edit {
            color: #008cd5;
        }

        .add {
            border: 1px solid #eee;
            margin: 10px 0;
            padding: 15px;
            text-align: center;
        }

        input {
            border: 1px solid #ccc;
            padding: 5px;
            border-radius: 3px;
            margin-right: 15px;
        }

        button {
            background: #008cd5;
            border: 0;
            padding: 4px 15px;
            border-radius: 3px;
            color: #fff;
        }

        #mask {
            background: rgba(0, 0, 0, .5);
            width: 100%;
            height: 100%;
            position: fixed;
            z-index: 4;
            top: 0;
            left: 0;
            display: none;
        }

        .mask {
            width: 300px;
            height: 250px;
            background: rgba(255, 255, 255, 1);
            position: absolute;
            left: 0;
            top: 0;
            right: 0;
            bottom: 0;
            margin: auto;
            z-index: 47;
            border-radius: 5px;
           
        }

        .title {
            padding: 10px;
            border-bottom: 1px solid #eee;
        }

        .title span {
            float: right;
            cursor: pointer;
        }

        .content {
            padding: 10px;
        }

        .content input {
            width: 270px;
            margin-bottom: 15px;
        }
    </style>
</head>

<body>
    <div id="table">
        <div class="add">
            <input type="text" name="title" value="" placeholder="标题" />
            <input type="text" name="user" value="" placeholder="发布人" />
            <input type="date" name="date" value="" placeholder="发布时间" />
            <button>新增</button>
        </div>
        <table cellpadding="0" cellspacing="0">
            <thead>
                <tr>
                    <th>序号</th>
                    <th>标题</th>
                    <th>发布人</th>
                    <th>发布时间</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody>
                <!-- 需要在这里输出表格数据 -->

            </tbody>
        </table>
        <div id="mask">
            <div class="mask">
                <div class="title"> 编辑 <span> X </span>
                </div>
                <div class="content">
                    <input type="text" name="title" value="" class="changetitle" placeholder="标题" />
                    <input type="text" name="user" value=""  class="changesuer" placeholder="发布人" />
                    <input type="date" name="date" value="" class="changedata" placeholder="发布时间" />
                    <button class="change">更新</button>
                    <button class="cancel">取消</button>
                </div>
            </div>
        </div>
    </div>
    <script type="text/javascript">
     
        var addDate, addUser, addText, submit,tbody,mask,change;
        var changeUser,changeData,changetext,pre;


           // ajax
    //        const xhr = new XMLHttpRequest()
    //     xhr.open('GET','https://api.iynn.cn/mock?t=2')
    //     xhr.send()
    //     xhr.onload = function() {
    //     // prev = JSON.parse(xhr.responseText)
    //     pre = JSON.parse(window.localStorage.getItem('arr'))
        
    //     // tbody.addEventListener('click',clickhanderl)
    // }
        // 本地存储
        const arr = JSON.parse(window.localStorage.getItem('arr')) || []


        init()
        // 获取操作对象
        function init() {
            mask=document.querySelector('#mask')
            mask.addEventListener('click',maskHandel)
            change=document.querySelector('.mask .change')
            tbody=document.querySelector('tbody')
            tbody.addEventListener('click',clickhanderl)
            add = document.querySelector('.add')
            changeData=document.querySelector('.changedata')
            changeUser=document.querySelector('.changesuer')
            changetext=document.querySelector('.changetitle')
            addText = document.querySelector('input[name=title]')
            addUser = document.querySelector('input[name=user]')
            addDate = document.querySelector('input[name=date]')
            submit = document.querySelector('.add button')
            submit.addEventListener('click', addclickhanderl)
            render()

        }

        function addclickhanderl(e) {
            // 获取input框中的内容
            let tit = addText.value
            let user = addUser.value
            let time = addDate.value
            // 验证是否全部填写
            if (!tit || !user || !time) {
                alert('请输入数据后再增加')
                return
            } else {
                // 存储到本地
                const info = {
                    title: tit,
                    user: user,
                    data: time

                }
                arr.push(info)
               
            }
            render()
          
        } 
        
        // 增加
        function render(){
      let str = ''
      arr.forEach(function (item, key) {
        //   遍历本地存储  渲染到页面
        str += `
        <tr>
            <td>${key+1}</td>
          <td>${item.title}</td>
          <td>${item.user}</td>
          <td>${item.data}</td>
          <td><button name="change" index="${key}">编辑</button><button name="del" index="${key}">删除</button></td>
        </tr>
        `
      })

      tbody.innerHTML = str
      window.localStorage.setItem('arr', JSON.stringify(arr))
                
    }
  
    // 删除
function clickhanderl(e){
    if (e.target.getAttribute('name') === 'del') {
        if (!confirm('是否确定删除')) return

        arr.splice(Number(e.target.getAttribute('index')), 1)

        render()
      } else if(e.target.getAttribute('name') === 'change'){
        mask.style.display = 'flex '
        console.log(arr);
        index = Number(e.target.getAttribute('index'));
        changetext.value = arr[index].title
        changeUser.value = arr[index].user
        changeData.value = arr[index].data
      
        
      }
}
// 修改
function maskHandel(e){
    if(e.target.nodeName==='SPAN' ||e.target.getAttribute('class') === 'cancel' ){
        mask.style.display = 'none'
    }else if(e.target.getAttribute('class') === 'change'){
       
        if (confirm('是否确定修改')) {
            let newuser = changeUser.value;
            let newdata =changeData.value
            let newtitle=changetext.value ;
            arr[index].user=newuser
            arr[index].title=newtitle
            arr[index].data=newdata
            if (!newdata || !newuser || !newtitle) {
                alert('请输入完整数据')
                return
            }
            render()
            mask.style.display = 'none'
        }
    }
}
           

    </script>
</body>

</html>